﻿using System;
using System.Collections.Generic;
using JTLeigh.Commerce.Spencer.Features.ProductImages.Common.Entities;

namespace JTLeigh.Commerce.Spencer.Features.ProductImages.Data.Providers
{

	/// <summary>
	/// Provider used to retrieve product images from the database.
	/// </summary>
	public interface IProductImageProvider
	{

		#region Method

		/// <summary>
		/// Gets a dictionary of product images by product identifier.
		/// </summary>
		/// <param name="tenantId">The tenant identifier <see cref="Guid"/> of the tenant whose
		/// images are to be retrieved.</param>
        /// <param name="catalogId">The catalog identifier <see cref="String"/> of the catalog
        /// that the product whose images are to be retrieved is in.</param>
        /// <param name="productId">The product identifier <see cref="String"/> of the product 
		/// whose images are to be retrieved.</param>
		/// <returns>A <see cref="Dictionary{TKey,TValue}"/> of <see cref="ProductImage"/> keyed by
		/// image identifier <see cref="Guid"/>.</returns>
		Dictionary<Guid, ProductImage> GetProductImages(Guid tenantId, string catalogId, string productId);

		#endregion // Method

	}

}
